from .basic import CatalogBasic, CatalogForm

class CatalogIndexFrom(CatalogForm):
    def __init__(self, index_name: str, columns, table_name: str):
        # CREATE INDEX idx ON t1 (a, b) USING btree;
        # -> 某个索引包含的元信息都有：
        #  索引名：idx
        #  表名：t1
        #  列名：a, b  -> 这是一个联合索引，多列索引，符合索引...
        #  索引类型：btree 这是一个可选参数
        self.table_name = table_name
        self.index_name = index_name
        self.columns = columns
        # 这里和table不一样，不需要types，因为可以反向从CatalogTable中获取

    def __repr__(self):
        return f'CREATE INDEX {self.index_name} ON {self.table_name} ({", ".join(self.columns)});';

class CatalogIndex(CatalogBasic):
    def __init__(self):
        super().__init__('index_information')